package cn.tedu.aiumall.stock.webapi.service.impl;

import cn.tedu.aiumall.common.pojo.stock.dto.StockReduceCountDTO;
import cn.tedu.aiumall.stock.service.IStockService;
import cn.tedu.aiumall.stock.webapi.mapper.StockMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

// @DubboService注解标记的业务逻辑层实现类,其中的所有方法都会注册到Nacos
// 在其他服务启动"订阅"时,就会"发现"当前类中的所有服务(业务逻辑层方法),并表示允许调用
@DubboService
@Service
@Slf4j
public class StockServiceImpl implements IStockService {
    @Autowired
    private StockMapper stockMapper;
    @Override
    public void reduceCommodityCount(StockReduceCountDTO stockReduceCountDTO) {
        // 调用持久层减少库存的方法
        // 参数1:商品编号
        // 参数2:要减少的库存数
        stockMapper.updateStockCount(
                stockReduceCountDTO.getCommodityCode(),
                stockReduceCountDTO.getReduceCount());
        log.info("库存减少已经完成!1");
    }
}
